from infirmary_admin_src.infirmary_common.infirmary_controller import IBaseController
from infirmary_admin_src.infirmary_common.infirmary_controller.rest_controller_with_depends import \
    RestControllerWithDepends
from fastapi import Request, Depends, Path, Body

from infirmary_admin_src.infirmary_smart_admin.infirmary_biz.infirmary.businesses.schemas import SchemaBase
from infirmary_admin_src.infirmary_smart_admin.infirmary_biz.infirmary.businesses.services.service_businesses import \
    Businesses


class XParam(SchemaBase):
    '''
    账号密码登录参数
    '''
    pass
    appid:str= ''
    name: str = ''
    tel: str = ''
    status: int = 0
    pageNum: int = 1
    pageSize: int = 10


class IController(IBaseController):
    '''
    定制相关约束检测函数逻辑步序
    '''

    def __init__(self, *, request: Request,
                 schema_param: XParam = Depends(),
                 ):
        super().__init__(request=request)
        # 入参参数
        # 入参参数
        self.schema_param = schema_param


@RestControllerWithDepends()
class InfirmaryBusinessesQuestListController(IController):

    def business_login(self):
        pass


        if self.request.state.department_code not in ['infirmary_group', 'infirmary_group_in']:
            # 限制查询的数据
            if hasattr(self.schema_param, 'appid'):
                self.schema_param.appid = self.request.state.department_code


        _result_nums_total, lists = Businesses.get_businesses_list(
            appid=self.schema_param.appid,
            tel = self.schema_param.tel,
            name=self.schema_param.name, status=self.schema_param.status, pageNo=self.schema_param.pageNum,
            pageSize=self.schema_param.pageSize, is_del_select_key=[], del_flag=0,
        )
        def addurlimge(v):
            # http://infirmary.wohuayuan.com/?appid=GZYYT&code=011nroFa1ugNqF0g8kJa1LRBSi4nroF1&state=STATE
            # ''.startswith()
            v['pic'] =v.get("pic") if v.get("pic").startswith('http') else f'http://infirmary.wohuayuan.com{v.get("pic")}'
            return v
        return {
            'emptyFlag': False if _result_nums_total > 0 else True,
            'list': [addurlimge(v) for v in lists],
            'pageNum': self.schema_param.pageNum,
            'pageSize': self.schema_param.pageSize,
            'pages': _result_nums_total / len(lists) if _result_nums_total > 0 else 0,
            'total': _result_nums_total
        }
